package ae.pcfc.etks.online.common.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * UserReq entity. @author Mohtisham.Salahria
 */
@Entity
@Table(name = "T_ETKS_USER_REQ", schema = "ETKS_ONLINE_DBA", uniqueConstraints = {
		@UniqueConstraint(columnNames = {"U_REQ_USERNAME", "U_REQ_EMAIL"}) })
@SequenceGenerator(name = "SQ_ETKS_USER_REQ", sequenceName = "SQ_ETKS_USER_REQ", initialValue = 1, allocationSize = 1)
public class UserReq implements java.io.Serializable {

	// Fields

	/**
	 * 
	 */
	private static final long serialVersionUID = -6627494638958430070L;
	private Long UReqId;
	//private Client Client;
	private String UReqNameEng;
	private String UReqNameArb;
	private String UReqUsername;
	private String UReqPassword;
	private Long UReqSecretAnsId;
	private String UReqSecretAns;
	private String UReqMobile;
	private String UReqEmail;
	private String UReqSmsNotification;
	private String UReqEmailNotification;
	private String UReqType;
	private String UReqStatus;
	private Date UReqCreateDate;
	private String applicationId;
	private String UTrakheesId;
	private String UAuthorized;
	// Constructors

	/** default constructor */
	public UserReq() {
	}

	/** minimal constructor */
	public UserReq(String UReqNameEng, String UReqNameArb,
			String UReqUsername, String UReqPassword, Long UReqSecretAnsId, String UReqSecretAns,
			String UReqMobile, String UReqEmail, String UReqType,
			String UReqStatus, Date UReqCreateDate) {
		this.UReqNameEng = UReqNameEng;
		this.UReqNameArb = UReqNameArb;
		this.UReqUsername = UReqUsername;
		this.UReqPassword = UReqPassword;
		this.UReqSecretAnsId = UReqSecretAnsId;
		this.UReqSecretAns = UReqSecretAns;
		this.UReqMobile = UReqMobile;
		this.UReqEmail = UReqEmail;
		this.UReqType = UReqType;
		this.UReqStatus = UReqStatus;
		this.UReqCreateDate = UReqCreateDate;
	}

	/** full constructor */
	public UserReq(Client Client, String UReqNameEng,
			String UReqNameArb, String UReqUsername, String UReqPassword,
			Long UReqSecretAnsId, String UReqSecretAns, String UReqMobile, String UReqEmail,
			String UReqSmsNotification, String UReqEmailNotification,
			String UReqType, String UReqStatus, Date UReqCreateDate) {
		//this.Client = Client;
		this.UReqNameEng = UReqNameEng;
		this.UReqNameArb = UReqNameArb;
		this.UReqUsername = UReqUsername;
		this.UReqPassword = UReqPassword;
		this.UReqSecretAns = UReqSecretAns;
		this.UReqMobile = UReqMobile;
		this.UReqEmail = UReqEmail;
		this.UReqSmsNotification = UReqSmsNotification;
		this.UReqEmailNotification = UReqEmailNotification;
		this.UReqType = UReqType;
		this.UReqStatus = UReqStatus;
		this.UReqCreateDate = UReqCreateDate;		
	}

	// Property accessors
	@Id
	@GeneratedValue( strategy = GenerationType.SEQUENCE, generator="SQ_ETKS_USER_REQ")
	@Column(name = "U_REQ_ID", nullable = false, precision = 11, scale = 0)
	public Long getUReqId() {
		return this.UReqId;
	}

	public void setUReqId(Long UReqId) {
		this.UReqId = UReqId;
	}

	/*@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_CLIENT_ID")
	public Client getClient() {
		return this.Client;
	}

	public void setClient(Client Client) {
		this.Client = Client;
	}*/

	@Column(name = "U_REQ_NAME_ENG", nullable = false, length = 50)
	public String getUReqNameEng() {
		return this.UReqNameEng;
	}

	public void setUReqNameEng(String UReqNameEng) {
		this.UReqNameEng = UReqNameEng;
	}

	@Column(name = "U_REQ_NAME_ARB", nullable = false, length = 50)
	public String getUReqNameArb() {
		return this.UReqNameArb;
	}

	public void setUReqNameArb(String UReqNameArb) {
		this.UReqNameArb = UReqNameArb;
	}

	@Column(name = "U_REQ_USERNAME", nullable = false, length = 50)
	public String getUReqUsername() {
		return this.UReqUsername;
	}

	public void setUReqUsername(String UReqUsername) {
		this.UReqUsername = UReqUsername;
	}

	@Column(name = "U_REQ_PASSWORD", nullable = false, length = 50)
	public String getUReqPassword() {
		return this.UReqPassword;
	}

	public void setUReqPassword(String UReqPassword) {
		this.UReqPassword = UReqPassword;
	}

	@Column(name = "U_REQ_SEC_ANS_ID", nullable = false, precision = 11, scale = 0)
	public Long getUReqSecretAnsId() {
		return UReqSecretAnsId;
	}
	
	public void setUReqSecretAnsId(Long uReqSecretAnsId) {
		UReqSecretAnsId = uReqSecretAnsId;
	}

	@Column(name = "U_REQ_SECRET_ANS", nullable = false, length = 100)
	public String getUReqSecretAns() {
		return this.UReqSecretAns;
	}

	public void setUReqSecretAns(String UReqSecretAns) {
		this.UReqSecretAns = UReqSecretAns;
	}

	@Column(name = "U_REQ_MOBILE", nullable = false, length = 25)
	public String getUReqMobile() {
		return this.UReqMobile;
	}

	public void setUReqMobile(String UReqMobile) {
		this.UReqMobile = UReqMobile;
	}

	@Column(name = "U_REQ_EMAIL", nullable = false, length = 50)
	public String getUReqEmail() {
		return this.UReqEmail;
	}

	public void setUReqEmail(String UReqEmail) {
		this.UReqEmail = UReqEmail;
	}

	@Column(name = "U_REQ_SMS_NOTIFICATION", length = 1)
	public String getUReqSmsNotification() {
		return this.UReqSmsNotification;
	}

	public void setUReqSmsNotification(String UReqSmsNotification) {
		this.UReqSmsNotification = UReqSmsNotification;
	}

	@Column(name = "U_REQ_EMAIL_NOTIFICATION", length = 1)
	public String getUReqEmailNotification() {
		return this.UReqEmailNotification;
	}

	public void setUReqEmailNotification(String UReqEmailNotification) {
		this.UReqEmailNotification = UReqEmailNotification;
	}

	@Column(name = "U_REQ_TYPE", nullable = false, length = 1)
	public String getUReqType() {
		return this.UReqType;
	}

	public void setUReqType(String UReqType) {
		this.UReqType = UReqType;
	}

	@Column(name = "U_REQ_STATUS", nullable = false, length = 1)
	public String getUReqStatus() {
		return this.UReqStatus;
	}

	public void setUReqStatus(String UReqStatus) {
		this.UReqStatus = UReqStatus;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "U_REQ_CREATE_DATE", nullable = false, length = 7)
	public Date getUReqCreateDate() {
		return this.UReqCreateDate;
	}

	public void setUReqCreateDate(Date UReqCreateDate) {
		this.UReqCreateDate = UReqCreateDate;
	}
	
	@Column(name = "APPLICATION_ID", nullable = false, length = 2000)
	public String getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(String applicationId) {
		this.applicationId = applicationId;
	}

	@Column(name = "U_TRAKHEES_ID", nullable = false, length = 50)
	public String getUTrakheesId() {
		return this.UTrakheesId;
	}

	public void setUTrakheesId(String UTrakheesId) {
		this.UTrakheesId = UTrakheesId;
	}
	
	@Column(name = "U_AUTHORIZED", nullable = true, length = 1)
	public String getUAuthorized() {
		return UAuthorized;
	}

	public void setUAuthorized(String uAuthorized) {
		UAuthorized = uAuthorized;
	}
}